var userAddressGrid = function(userId, status) {
	var userAddressSm = new Ext.grid.CheckboxSelectionModel();// 创建选择模式对象
	// 定义表的每列（对应表头信息）
	var userAddressCm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
				dataIndex : "id",
				header : "收货地址编号",
				sortable : true,
				width : 70
			}, {
				dataIndex : "consignee",
				header : "姓名",
				sortable : true,
				width : 100
			}, {
				dataIndex : "consignPhone",
				header : "手机号",
				sortable : true,
				width : 100
			}, {
				dataIndex : "provinceName",
				header : "省份",
				sortable : true,
				width : 100
			}, {
				dataIndex : "cityName",
				header : "城市",
				sortable : true,
				width : 100
			}, {
				dataIndex : "districtName",
				header : "区县",
				sortable : true,
				width : 100
			}, {
				dataIndex : "address",
				header : "详细地址",
				sortable : true,
				width : 130

			}, {
				dataIndex : "status",
				header : "状态",
				sortable : true,
				width : 70,
				renderer : function(value) {
					PmsUtil.UserStatus(value);
					var value = '<div style="color:red;">'
							+ PmsUtil.UserStatus(value);
					+'</div>';
					return value;
				}
			}, {
				dataIndex : "isDefault",
				header : "是否默认",
				sortable : true,
				width : 100,
				renderer : function(value) {
					return PmsUtil.IsDafault(value);
				}
			}, {
				dataIndex : "createdName",
				header : "创建人",
				sortable : true,
				width : 100
			}, {
				dataIndex : "createdDate",
				header : "创建时间",
				sortable : true,
				width : 130
			}, {
				dataIndex : "updatedName",
				header : "修改人",
				sortable : true,
				width : 100
			}, {
				dataIndex : "updatedDate",
				header : "修改时间",
				sortable : true,
				width : 130
			}, {
				header : "管理",
				width : 140,
				dataIndex : "id",
				sortable : false,
				renderer : function(j, i, g, m, h) {
					var l = g.data.id;
					var addressStatus = g.data.status;
					var isDefault = g.data.isDefault;
					var k = "";
					if (isGranted("userAddressManager_修改地址")) {
						if (addressStatus == 0) {
							k += '&nbsp;&nbsp;<a href="#" onclick="updAddress('
									+ l + ',' + userId + ');" >修改</a>';
						}
					}
					if (isGranted("userAddressManager_禁用地址")) {
						if (addressStatus == 0) {
							k += '&nbsp;&nbsp;<a href="#" onclick="updAddressStatus('
									+ l + ',1);" >删除</a>';
						}
					}

					if (isGranted("userAddressManager_设为默认")) {
						if (addressStatus == 0 && isDefault == 0) {
							k += '&nbsp;&nbsp;<a href="#" onclick="updateAdressDefault('
									+ l + ',1);" >设为默认</a>';
						}
					}

					return k;
				}
			}]);

	// 定义分析器
	var userAddressReader = new Ext.data.JsonReader({
				totalProperty : "totalCount",
				root : "list",
				fields : [{
							name : "id"
						}, {
							name : "userId"
						}, {
							name : "consignee"
						}, {
							name : "consignPhone"
						}, {
							name : "provinceName"
						}, {
							name : "cityName"
						}, {
							name : "districtName"
						}, {
							name : "address"
						}, {
							name : "status"
						}, {
							name : "isDefault"
						}, {
							name : "createdDate"
						}, {
							name : "createdName"
						}, {
							name : "updatedDate"
						}, {
							name : "updatedName"
						}]
			});

	// 取数据store
	var userAddresStore = new Ext.data.Store({
				autoLoad : true,// 要加载数据必须设置为true
				proxy : new Ext.data.HttpProxy({
							url : __ctxPath
									+ "/addressManager/selectAddressByUserId"
						}),
				remoteSort : false,
				baseParams : {
					start : 0,
					limit : 25,
					userId : userId,
					status : status
				},
				reader : userAddressReader
			});

	// 定义grid的toolbar
	var userAddressTb = new Ext.Toolbar({
				id : "userAddressTb",
				height : 25,
				items : []
			});

	userAddressTb.add(new Ext.scm.Button({
				text : "添加地址",
				width : 80,
				hsValue : 'userAddressManager_添加用户地址',
				iconCls : "btn-add",
				pressed : true,
				listeners : {
					"click" : function() {
						addAddress(userId);
					}
				}
			}));

	userAddressTb.add(new Ext.Toolbar.Spacer());
	userAddressTb.add(new Ext.scm.Button({
				text : "刷 新",
				iconCls : "btn-refresh",
				hsValue : 'userAddressManager_刷新',
				width : 80,
				pressed : true,
				handler : function() {
					var grid = Ext.getCmp("userAddressGrid");
					var store = grid.store;
					var pagesize = Ext.getCmp('userAddressGridPage').pageSize;
					store.load({
								params : {
									start : 0,
									limit : pagesize
								}
							});
				}
			}));

	var userAddressGrid = new Ext.grid.GridPanel({
				id : 'userAddressGrid',
				title : '用户地址管理',
				store : userAddresStore,
				cm : userAddressCm,
				sm : userAddressSm,
				autoScroll : true,
				loadMask : true,
				stripeRows : true,
				columnLines : true,
				loadMask : {
					msg : "正在加载数据，请稍侯……"
				},
				viewConfig : {
					emptyText : '没有您想要的数据!'
				},
				anchor : '100% 100%',
				frame : true,
				tbar : userAddressTb,
				bbar : new PG.PagingBar({
							id : 'userAddressGridPage',
							store : userAddresStore
						})
			});

	return userAddressGrid;
};

/**
 * 添加
 * 
 * @param {}
 *            userId
 * @param {}
 *            title
 */
function addAddress(userId) {
	try {
		addOrUpdUsersAddress(null, "添加地址", userId).show();
	} catch (Error) {
		Ext.Loader.load([__ctxPath + '/js/users/addOrUpdAddressForm.js'],
				function() {
					addOrUpdUsersAddress(null, "添加地址", userId).show();
				});
	}
}

/**
 * 修改
 * 
 * @param {}
 *            userId
 * @param {}
 *            title
 */
function updAddress(id, userId) {
	try {
		addOrUpdUsersAddress(id, "修改地址", userId).show();
	} catch (Error) {
		Ext.Loader.load([__ctxPath + '/js/users/addOrUpdAddressForm.js'],
				function() {
					addOrUpdUsersAddress(id, "修改地址", userId).show();
				});
	}
}

// 修改用户地址状态
function updAddressStatus(id, status) {
	Ext.Msg.confirm("提示", "确定删除吗？", function(c) {
		if (c == 'yes') {
			Ext.Ajax.request({
						url : __ctxPath + '/addressManager/updateAdressStatus',
						params : {
							id : id,
							status : status
						},
						success : function(option) {
							var s = Ext.util.JSON.decode(option.responseText);
							if (s.success) {
								Ext.MessageBox.show({
											title : '提示',
											msg : '删除成功!',
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.INFO
										});
								Ext.getCmp("userAddressGrid").getStore().load();
							} else {
								Ext.MessageBox.show({
											title : '提示',
											msg : '删除失败!',
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.WARNING
										});
							}
						},
						failure : function() {
							Ext.MessageBox.show({
										title : '提示',
										msg : '服务器响应超时!',
										buttons : Ext.MessageBox.OK,
										icon : Ext.MessageBox.WARNING
									});
						}
					})
		}
	});
}

// 地址设为默认
function updateAdressDefault(id, isDefault) {
	Ext.Msg.confirm("提示", "确定要将该地址设为默认吗？", function(c) {
		if (c == 'yes') {
			Ext.Ajax.request({
						url : __ctxPath + '/addressManager/updateAdressDefault',
						params : {
							id : id,
							isDefault : isDefault
						},
						success : function(option) {
							var s = Ext.util.JSON.decode(option.responseText);
							if (s.success) {
								Ext.MessageBox.show({
											title : '提示',
											msg : '设置成功!',
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.INFO
										});
								Ext.getCmp("userAddressGrid").getStore().load();
							} else {
								Ext.MessageBox.show({
											title : '提示',
											msg : '设置失败!',
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.WARNING
										});
							}
						},
						failure : function() {
							Ext.MessageBox.show({
										title : '提示',
										msg : '服务器响应超时!',
										buttons : Ext.MessageBox.OK,
										icon : Ext.MessageBox.WARNING
									});
						}
					})
		}
	});
}
